SET
이 명령어는 DOS 환경 변수를 설정하거나 변경하고, 설정된 환경 변수를 보기 위해 사용하는 것으로 프롬프트 상에서 사용하거나 배치 프로그램에서 사용하는 내부 명령어이다.
사용자는 일부 배치 프로그램의 동작을 통제하거나, DOS나 DOS 서브시스템이 나타나고 작동하는 방법을 결정하기 위해 환경 변수를 사용한다.
일반적으로 SET 명령어는 사용자가 컴퓨터를 부팅될 때마다 자동으로 환경 변수를 설정하기 위해 Autoexec.bat 파일에 사용한다. 따라서, 이 명령어를 프롬프트 명령어에 분류하지 않고 배치 파일 명령어로 분류한 것이다.
■ 명령어 위치
Command.com에 포함된 내부 명령어
■ 사용법
SET [variable=[string]]
■ 옵션 및 매개변수

none | 매개변수 없이 사용되면 현재의 환경 설정을 보여준다.
variable | 사용자가 설정하거나 변경하고자 하는 변수를 지정한다.
string | 환경 변수에 지정될 변수값이나 문자열을 지정한다.

■ 사용상의 주의
☞ 현행 환경 설정 알아보기
명령어 프롬프트 상에서 매개변수나 옵션이 없이 SET 명령어를 단독으로 사용하는 경우, DOS는 현재 설정된 환경 변수 값을 보여준다.
DOS에서 지정할 수 있는 환경 변수는 명령어 해석기의 위치를 지정하는 COMSPEC, 실행 파일의 검색 경로를 지정하기 위한 PATH, 프롬프트 표시 방법을 지정하기 위해 사용하는 PROMPT, 그리고 DIR 명령어를 이용하여 파일 목록을 열람할 때의 옵션을 지정하기 위한 DIRCMD, 데이터를 임시 저장하기 위한 디스크 상의 공간을 지정하기 위한 TEMP 환경 변수 등이 있다.
이 외에도 응용 프로그램에 따라 필요한 환경 변수를 지정할 수 있다. 예를 들어, 사운드 카드의 경우에는 주소, 인터럽트 요청선을 지정하기 위해 Blaster라는 환경 변수를 사용한다.
☞ 매개변수 사용하기
사용자가 SET 명령어를 사용하고 variable과 string에 대한 변수를 지정할 때, DOS는 지정된 변수를 환경에 추가하고, string을 그 변수 값으로 사용한다. 이미 지정된 환경 변수가 있는 경우에는 새로 지정된 값이 기존의 환경 변수 값을 대체한다.
만약, SET 명령어를 사용할 때 string없이 variable=만 단독으로 사용하면 DOS는 해당 variable에 지정되어 있던 모든 환경 변수를 삭제한다.
☞ 배치 파일에 SET 사용하기
사용자는 배치 프로그램을 작성할 때 SET 명령을 사용하여 변수값을 설정할 수 있고, %0∼%9까지의 대체 변수와 같은 방식으로 사용할 수도 있다.
또, %0∼%9까지의 대체 변수값을 SET 명령어의 입력값으로 사용할 수도 있다.
☞ 배치 파일에서의 환경 변수 호출
배치 파일에서 변수 값을 호출할 때 반드시 그 값을 퍼센트 기호(%)로 묶어야 한다.
예를 들어, 기존의 검색 경로를 지정한 PATH 환경 변수를 호출하려면 %PATH%와 같은 방식으로 호출한다. 즉, %PATH%는 기존의 환경 변수를 string으로 사용한다.
DOS에서는 이러한 환경 변수의 호출이 반드시 배치 프로그램만으로 한정되지 않고, 명령어 프롬프트 상에서도 이를 호출할 수 있다.
☞ 환경 공간에 대한 SET의 효과
SET 명령을 입력한 뒤 다음과 같은 메시지가 나올 경우가 있다.
Out of environment space.
이러한 메시지는 정상적으로 변수 값을 설정하지 못했을 경우 혹은 환경을 저장할 공간이 충분하지 않은 경우에 나타나는 것으로 환경 공간을 확장해 주어야 한다. 환경 공간의 확장에 대해서는 Command.com을 참조한다.
■ 사용 예
C:\INC 디렉토리를 INCLUDE 환경 변수로 설정하려면 다음과 같이 SET 명령어를 사용한다.
set include=c:\inc
위의 예처럼 INCLUDE 환경 변수를 설정한 다음부터는 환경 변수 INCLUDE를 %로 묶어서 배치 파일에서 문자열 대신 사용할 수 있다.
예를 들어, 사용자가 INCLUDE 환경 변수와 관련된 디렉토리의 내용을 보기 위하여 배치 파일에 다음과 같은 명령어를 사용할 수 있다.
dir %include%
DOS는 위의 예와 같은 명령어를 처리할 때, %includ% 대신에 C:\INC로 바꾼다.
SET 명령어는 다음의 예에 나타난 것처럼, 기존의 환경 변수에 새로운 환경 변수를 추가하기 위해 사용할 수 있다. 다음 예는 기존의 검색 경로를 지정한 환경 변수에 사용자가 지정한 디렉토리를 추가하는 내용을 담고 있는 배치 프로그램이다.
@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable
set path=%1;%path%